home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / lamstex / inputs / paper.st < prev    next >
Text File  |  1991-09-06  |  16KB  |  517 lines

  1. % PAPER.ST  VERSION 2.0
  2. % COPYRIGHT (C) 1989, 1990, 1991 BY THE TEXPLORATORS CORPORATION
  3. % ALL RIGHTS RESERVED
  4.  
  5. % IF THIS FILE IS MODIFIED IN ANY WAY, IT SHOULD BE GIVEN A DIFFERENT NAME !
  6.  
  7. \catcode`\@=11
  8. \ifx\paperst@\relax\catcode`\@=\active\endinput\else\let\paperst@\relax\fi
  9. \let\alloc@=\alloc@@
  10.  
  11. \hsize=30pc
  12. \vsize=42pc
  13. \parindent=1em
  14. \normallineskiplimit=1pt
  15. \advance\hoffset 48pt
  16. \advance\voffset 78pt
  17.  
  18. \font@\ninerm=cmr9
  19. \font@\eightrm=cmr8
  20. \font@\sixrm=cmr6
  21. \font@\eighti=cmmi8   \skewchar\eighti='177
  22. \font@\sixi=cmmi6     \skewchar\sixi='177
  23. \font@\ninesy=cmsy9   \skewchar\ninesy='60
  24. \font@\eightsy=cmsy8  \skewchar\eightsy='60
  25. \font@\sixsy=cmsy6    \skewchar\sixsy='60
  26. \font@\eightbf=cmbx8
  27. \font@\sixbf=cmbx6
  28. \font@\eightit=cmti8
  29. \font@\eightsl=cmsl8
  30. \font@\eighttt=cmtt8
  31.  
  32. \ifmsamloaded@
  33.  \font@\eightmsa=msam8
  34.  \font@\sixmsa=msam6
  35. \fi
  36.  
  37. \ifmsbmloaded@
  38.  \font@\eightmsb=msbm8
  39.  \font@\sixmsb=msbm6
  40. \fi
  41.  
  42. \ifeufmloaded@
  43.  \font@\eighteufm=eufm8
  44.  \font@\sixeufm=eufm6
  45. \fi
  46.  
  47. \ifcmmibloaded@
  48.  \font@\eightcmmib=cmmib8 \skewchar\eightcmmib='177
  49.  \font@\sixcmmib=cmmib6 \skewchar\sixcmmib='177
  50. \fi
  51.  
  52. \ifcmbsyloaded@
  53.  \font@\eightcmbsy=cmbsy8 \skewchar\eightcmbsy='60
  54.  \font@\sixcmbsy=cmbsy6 \skewchar\sixcmbsy='60
  55. \fi
  56.  
  57. \newskip\ttglue@
  58.  
  59. \def\tenpoint{\def\pointsize@{10}%
  60.  \normalbaselineskip12\p@
  61.  \abovedisplayskip12\p@ plus3\p@ minus9\p@
  62.  \belowdisplayskip12\p@ plus3\p@ minus9\p@
  63.  \abovedisplayshortskip\z@ plus3\p@
  64.  \belowdisplayshortskip7\p@ plus3\p@ minus4\p@
  65.  \textonlyfont@\rm\tenrm
  66.  \textonlyfont@\it\tenit
  67.  \textonlyfont@\sl\tensl
  68.  \textonlyfont@\bf\tenbf
  69.  \ifsyntax@\def\big##1{{\hbox{$\left##1\right.$}}}\else
  70.   \let\big\tenbig@
  71.   \textfont\z@\tenrm  \scriptfont\z@\sevenrm  \scriptscriptfont\z@\fiverm
  72.   \textfont\@ne\teni  \scriptfont\@ne\seveni  \scriptscriptfont\@ne\fivei
  73.   \textfont\tw@\tensy \scriptfont\tw@\sevensy \scriptscriptfont\tw@\fivesy
  74.   \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  75.   \textfont\itfam\tenit
  76.   \textfont\slfam\tensl
  77.   \textfont\bffam\tenbf \scriptfont\bffam\sevenbf
  78.    \scriptscriptfont\bffam\fivebf
  79.   \ifmsamloaded@
  80.    \textfont\msafam\tenmsa \scriptfont\msafam\sevenmsa
  81.     \scriptscriptfont\msafam\fivemsa
  82.   \fi
  83.   \ifmsbmloaded@
  84.    \textfont\msbfam\tenmsb \scriptfont\msbfam\sevenmsb
  85.     \scriptscriptfont\msbfam\fivemsb
  86.   \fi
  87.   \ifeufmloaded@
  88.    \textfont\eufmfam\teneufm \scriptfont\eufmfam\seveneufm
  89.     \scriptscriptfont\eufmfam\fiveeufm
  90.   \fi
  91.   \ifcmmibloaded@
  92.    \textfont\cmmibfam\tencmmib \scriptfont\cmmibfam\sevencmmib
  93.     \scriptscriptfont\cmmibfam\fivecmmib
  94.   \fi
  95.   \ifcmbsyloaded@
  96.    \textfont\cmbsyfam\tencmbsy \scriptfont\cmbsyfam\sevencmbsy
  97.     \scriptscriptfont\cmbsyfam\fivecmbsy
  98.   \fi
  99.  \fi
  100.  \let\tt\tentt
  101.  \tt\ttglue@.5emminus.15em
  102.  \setbox\strutbox\hbox{\vrule\height8.5\p@\depth3.5\p@\width\z@}%
  103.  \setbox\strutbox@\hbox{\vrule\height8\p@\depth3\p@\width\z@}%
  104.  \ex@.2326ex\normalbaselines\ifmmode\else\rm\fi}
  105.  
  106. \def\tenbig@#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
  107.  
  108. \tenpoint
  109.  
  110. \def\eightpoint{\def\pointsize@{8}%
  111.  \normalbaselineskip10\p@
  112.  \abovedisplayskip10\p@ plus2.4\p@ minus7.2\p@
  113.  \belowdisplayskip10\p@ plus2.4\p@ minus7.2\p@
  114.  \abovedisplayshortskip\z@ plus2.4\p@
  115.  \belowdisplayshortskip5.6\p@ plus2.4\p@ minus3.2\p@
  116.  \textonlyfont@\rm\eightrm
  117.  \textonlyfont@\it\eightit
  118.  \textonlyfont@\sl\eightsl
  119.  \textonlyfont@\bf\eightbf
  120.  \ifsyntax@\def\big##1{{\hbox{$\left##1\right.$}}}\else
  121.   \let\big\eightbig@
  122.   \textfont\z@\eightrm \scriptfont\z@\sixrm  \scriptscriptfont\z@\fiverm
  123.   \textfont\@ne\eighti \scriptfont\@ne\sixi  \scriptscriptfont\@ne\fivei
  124.   \textfont\tw@\eightsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivesy
  125.   \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  126.   \textfont\itfam\eightit
  127.   \textfont\slfam\eightsl
  128.   \textfont\bffam\eightbf \scriptfont\bffam\sixbf
  129.    \scriptscriptfont\bffam\fivebf
  130.   \ifmsamloaded@
  131.    \textfont\msafam\eightmsa \scriptfont\msafam\sixmsa
  132.     \scriptscriptfont\msafam\fivemsa
  133.   \fi
  134.   \ifmsbmloaded@
  135.    \textfont\msbfam\eightmsb \scriptfont\msbfam\sixmsb
  136.     \scriptscriptfont\msbfam\fivemsb
  137.   \fi
  138.   \ifeufmloaded@
  139.    \textfont\eufmfam\eighteufm \scriptfont\eufmfam\sixeufm
  140.     \scriptscriptfont\eufmfam\fiveeufm
  141.   \fi
  142.   \ifcmmibloaded@
  143.    \textfont\cmmibfam\eightcmmib \scriptfont\cmmibfam\sixcmmib
  144.     \scriptscriptfont\cmmibfam\fivecmmib
  145.   \fi
  146.   \ifcmbsyloaded@
  147.    \textfont\cmbsyfam\eightcmbsy \scriptfont\cmbsyfam\sixcmbsy
  148.     \scriptscriptfont\cmbsyfam\fivecmbsy
  149.   \fi
  150.  \fi
  151.  \let\tt\eighttt
  152.  \tt\ttglue@.4emminus.12em
  153.  \setbox\strutbox\hbox{\vrule\height7\p@\depth3\p@\width\z@}%
  154.  \setbox\strutbox@\hbox{\vrule\height6.5\p@\depth2.5\p@\width\z@}%
  155.  \ex@.2326ex\normalbaselines\ifmmode\else\rm\fi}
  156.  
  157. \def\eightbig@#1{{\hbox{$\textfont\z@\ninerm\textfont\tw@\ninesy
  158.  \left#1\vbox to6.5\p@{}\right.\n@space$}}}
  159.  
  160. {\catcode` =\active
  161. \gdef\litcodes@@{\def {\allowbreak\hskip\ttglue@}}}
  162.  
  163. \footline={\hss\tenpoint\folio\hss}
  164.  
  165. \def\LamSTeX{L\kern-.4em\raise.3ex\hbox{$\ssize\Cal A$}%
  166.  \DN@{10}\ifx\next@\pointsize@\kern-.25em\else\kern-.3em\fi
  167.  \lower.4ex\hbox{\DN@{10}\ifx\next@\pointsize@\eightsy\else\sixsy\fi M}%
  168.  \kern-.1em{$\Cal S$}-\TeX}
  169.  
  170. \def\claimformat@#1#2#3{\medbreak\noindent@@
  171.  \DN@{8}\ifx\pointsize@\next@
  172.   \rm\uppercase{#1 {\claim@@@F#2} #3}\punct@{\null.}\addspace@\enspace\else
  173.   \smc#1 {\claim@@@F#2} #3\punct@{\null.}\addspace@\enspace\fi
  174.  \sl}
  175.  
  176. \def\windex@{\ifindexing@
  177.  \expandafter\unmacro@\meaning\stari@\unmacro@
  178.  \edef\macdef@{\string"\macdef@\string"}%
  179.  \edef\next@{\write\ndx@{\macdef@}}\next@
  180.  \write\ndx@{{\number\pageno}{\page@N}{\page@P}{\page@Q}}%
  181.  \fi
  182.  \ifindexproofing@
  183.   \ifx\stariii@\empty\else
  184.    \expandafter\unmacro@\meaning\stariii@\unmacro@\fi
  185.   \insert\margin@{\hbox{\eightpoint
  186.   \vrule\height7\p@\depth3\p@\width\z@\starii@
  187.   \ifx\stariii@\empty\else\tt\macdef@\fi}}\fi}
  188.  
  189. \newcount\toclevel@
  190. \toclevel@=3
  191. \def\toclevel#1{\toclevel@#1\relax}
  192.  
  193. \def\HLtoc@{%
  194.  \iftoc@
  195.   \ifnum\toclevel@<\@ne \else
  196.    {\noexpands@\let\style\relax
  197.    \edef\next@{\write\toc@{%
  198.    \noexpand\noexpand\expandafter\noexpand\HLname@
  199.    {\expandafter\noexpand\csname HL@W\HLlevel@\endcsname}{\QorThelabel@@@@}}}%
  200.    \next@}%
  201.    \expandafter\unmacro@\meaning\entry@\unmacro@
  202.    \Sixtoc@
  203.    \write\toc@{\noexpand\Page{\number\pageno}{\page@N}%
  204.     {\page@P}{\page@Q}^^J}%
  205.   \fi
  206.  \fi}
  207.  
  208. \def\hltoc@{%
  209.  \iftoc@ 
  210.   \ifnum\hllevel@<\toclevel@
  211.    {\noexpands@\let\style\relax
  212.    \edef\next@{\write\toc@{%
  213.     \ifnopunct@\noexpand\noexpand\noexpand\nopunct\fi
  214.     \ifnospace@\noexpand\noexpand\noexpand\nospace\fi
  215.     \noexpand\noexpand\expandafter\noexpand\hlname@
  216.    {\expandafter\noexpand\csname hl@W\hllevel@\endcsname}{\QorThelabel@@@@}}}%
  217.    \next@}%
  218.    \expandafter\unmacro@\meaning\entry@\unmacro@
  219.    \Sixtoc@
  220.    \write\toc@{\noexpand\Page{\number\pageno}{\page@N}%
  221.    {\page@P}{\page@Q}^^J}%
  222.   \fi
  223.  \fi}
  224.  
  225. \def\notocwrite@#1#2#3{\iftoc@\test@true\else\test@false\fi
  226.  \toc@false#1{#2}#3\iftest@\toc@true\fi}
  227.  
  228. \notocwrite@\NameHL1\heading
  229. \newfontstyle\heading{\smc}
  230. \newif\ifinsection@
  231.  
  232. \expandafter\def\csname HL@1\endcsname#1\endHL{\global\insection@false
  233.  \bigbreak\medskip
  234.  {\locallabel@
  235.   \global\setbox\@ne\vbox{\Let@\tabskip\hss@
  236.   \halign to\hsize{\smc\hfil\ignorespaces##\unskip\hfil\cr
  237.    \expandafter\ifx\csname HL@W1\endcsname\empty\else
  238.    \csname HL@W1\endcsname\space\fi
  239.    {\HL@@F\ifx\thelabel@@\empty\else\thelabel@@\space\fi}%
  240.    \ignorespaces#1\crcr}}}\unvbox\@ne\nobreak\medskip}
  241.  
  242. \def\appendices{%
  243.  \NameHL1\appendix
  244.  \Reset\appendix\@ne
  245.  \newnumstyle\appendix\Alph
  246.  \newword\appendix{Appendix}% 
  247. }
  248.  
  249. \notocwrite@\Namehl1\section
  250. \newstyle\section#1{#1\null.}
  251.  
  252. \newif\ifcontinuesection@
  253. \def\keepsection{\global\continuesection@true}
  254.  
  255. \expandafter\def\csname hl@1\endcsname#1{\global\insection@true
  256.  \global\continuesection@false
  257.  \medbreak\noindent@@
  258.  {\locallabel@
  259.   \bf{\hl@@F\ifx\thelabel@@\empty\else\thelabel@@\space\fi}%
  260.   \ignorespaces#1\unskip\punct@{\null.}}%
  261.  \par\nobreak\smallskip}
  262.  
  263. \expandafter\newcount\csname hl@C2\endcsname
  264. \csname hl@C2\endcsname\z@
  265. \expandafter\def\csname hl@S2\endcsname#1{#1\null.}
  266. \expandafter\let\csname hl@N2\endcsname\arabic
  267. \expandafter\let\csname hl@P2\endcsname\empty
  268. \expandafter\let\csname hl@Q2\endcsname\empty
  269. \expandafter\def\csname hl@F2\endcsname{\bf}
  270. \expandafter\let\csname hl@W2\endcsname\empty
  271.  
  272. \notocwrite@\Namehl2\subsection
  273.  
  274. \expandafter\def\csname hl@2\endcsname#1{%
  275.  \ifinsection@
  276.   \smallbreak
  277.   \noindent@@
  278.   {\locallabel@
  279.    {\hl@@F\ifx\thelabel@@\empty\else\thelabel@@\space\fi}\bf
  280.    \ignorespaces#1\unskip\punct@{\null.}\addspace@\enspace}%
  281.  \else
  282.   \Err@{\noexpand\subsection not in a \string\section}%
  283.  \fi}
  284.  
  285. \expandafter\newcount\csname hl@C3\endcsname
  286. \csname hl@C3\endcsname\z@
  287. \expandafter\def\csname hl@S3\endcsname#1{#1}
  288. \expandafter\let\csname hl@N3\endcsname\arabic
  289. \expandafter\let\csname hl@P3\endcsname\empty
  290. \expandafter\let\csname hl@Q3\endcsname\empty
  291. \expandafter\let\csname hl@F3\endcsname\empty
  292. \expandafter\let\csname hl@W3\endcsname\empty
  293.  
  294. \notocwrite@\Namehl3\topic
  295.  
  296. \expandafter\def\csname hl@3\endcsname#1{%
  297.  \smallbreak
  298.  \noindent@@
  299.  {\locallabel@
  300.   \bf\ignorespaces#1\unskip\punct@{\null.}\addspace@\enspace}}
  301.  
  302. \expandafter\newcount\csname hl@C4\endcsname
  303. \csname hl@C4\endcsname\z@
  304. \expandafter\def\csname hl@S4\endcsname#1{#1}
  305. \expandafter\let\csname hl@N4\endcsname\arabic
  306. \expandafter\let\csname hl@P4\endcsname\empty
  307. \expandafter\let\csname hl@Q4\endcsname\empty
  308. \expandafter\let\csname hl@F4\endcsname\empty
  309. \expandafter\let\csname hl@W4\endcsname\empty
  310.  
  311. \notocwrite@\Namehl4\subtopic
  312.  
  313. \expandafter\def\csname hl@4\endcsname#1{%
  314.  \smallbreak
  315.  {\locallabel@\bf\ignorespaces#1\unskip
  316.  \punct@{\null.}\addspace@\enspace}}
  317.  
  318. \expandafter\def\csname HL@I1\endcsname{\ifcontinuesection@
  319.  \else\Reset\hl11\fi}
  320. \expandafter\def\csname hl@I1\endcsname{\Reset\hl21%
  321.  \newpre\hl2{\ifx\pref\empty\else\pref.\fi}}
  322. \expandafter\def\csname hl@I2\endcsname{\Reset\hl31}
  323. \expandafter\def\csname hl@I3\endcsname{\Reset\hl41}
  324.  
  325. \def\vfootnote@#1{\insert\footins
  326.  \bgroup
  327.  \floatingpenalty\@MM\interlinepenalty\interfootnotelinepenalty
  328.  \leftskip\z@\rightskip\z@\spaceskip\z@\xspaceskip\z@
  329.  \eightpoint
  330.  \splittopskip\ht\strutbox\splitmaxdepth\dp\strutbox
  331.  \locallabel@\noindent@@{\foottext@F#1}\modifyfootnote@
  332.  \footstrut\FN@\fo@t}
  333.  
  334. \newbox\abstractbox@
  335. \rightadd@\abstract\to\nofrillslist@
  336. \def\abstract@W{Abstract}
  337.  
  338. \def\abstract{\begingroup
  339.  \global\setbox\abstractbox@\vbox\bgroup
  340.   \eightpoint\leftskip24\p@ \rightskip\leftskip
  341.   \everydisplay{\advance\displaywidth-48\p@\displayindent24\p@
  342.    \csname displaymath \endcsname}%
  343.  \tolerance800
  344.  \noindent@@
  345.  \ifx\abstract@W\empty\else
  346.   \abstract@W\punct@{\null.}\addspace@\enspace\fi}
  347.  
  348. \def\endabstract{\egroup\endgroup}
  349.  
  350. \let\thanks@\relax
  351. \long\def\thanks#1{\gdef\thanks@{\ignorespaces#1\unskip}}
  352.  
  353. \let\keywords@\relax
  354. \def\keywords#1{\gdef\keywords@{{\ignorespaces#1}}}
  355.  
  356. \let\subjclass@\relax
  357. \def\subjclass#1{\gdef\subjclass@{{\ignorespaces#1}}}
  358.  
  359. \newcount\addresscount@
  360. \addresscount@\z@
  361. \long\def\address#1{\global\advance\addresscount@\@ne
  362.  \expandafter\gdef\csname address\number\addresscount@\endcsname
  363.  {{\ignorespaces#1}}}
  364.  
  365. \def\bye{\par\nobreak\vskip12\p@ minus6\p@
  366.  \eightpoint
  367.  \ifx\keywords@\relax\else
  368.  \noindent@@{\it Keywords.\enspace}\keywords@\par\fi
  369.  \ifx\subjclass@\relax\else
  370.  \noindent@@ 1980 {\it Mathematics subject classifications\/}\colon@\space
  371.   \subjclass@\par\fi
  372.  \ifnum\addresscount@>\z@
  373.  \nobreak\vskip12\p@ minus6\p@
  374.  \loop\ifnum\addresscount@>\z@
  375.  \csname address\number\addresscount@\endcsname\endgraf
  376.  \global\advance\addresscount@\m@ne
  377.  \repeat
  378.  \fi
  379.  \vfill\supereject
  380.  \end}
  381.  
  382. \let\enddocument\bye
  383.  
  384. \let\pretitle\empty
  385. \let\preauthor\empty
  386. \let\preaffil\empty
  387. \let\predate\empty
  388. \let\preabstract\empty
  389. \let\prepaper\empty
  390.  
  391. \def\maketitle{\hrule\height\z@\vskip-\topskip
  392.  \pretitle
  393.  \vskip24\p@ plus12\p@ minus12\p@
  394.  \unvbox\titlebox@
  395.  \preauthor
  396.  \ifvoid\authorbox@\else\vskip12\p@ plus6\p@ minus3\p@\unvbox\authorbox@\fi
  397.  \preaffil
  398.  \ifvoid\affilbox@\else\vskip10\p@ plus5\p@ minus2\p@\unvbox\affilbox@\fi
  399.  \predate
  400.  \ifx\date@\relax\else\vskip6\p@ plus2\p@ minus\p@\centerline{\rm\date@}%
  401.   \let\date@\relax\fi
  402.  \preabstract
  403.  \ifx\thanks@\relax\else\vfootnote@{}\thanks@\let\thanks@\relax\fi
  404.  \ifvoid\abstractbox@\else\vskip15\p@ plus12\p@ minus12\p@
  405.   \unvbox\abstractbox@\fi
  406.  \prepaper
  407.  \vskip18\p@ plus12\p@ minus6\p@}
  408.  
  409. \def\makebib{\begingroup\eightpoint
  410.  \bigbreak\centerline{\smc\makebib@W}%
  411.  \nobreak\medskip
  412.  \sfcode`\.=\@m\everypar{}\parindent\z@
  413.  \def\nopunct{\nopunct@true}\def\nospace{\nospace@true}%
  414.  \nopunct@false\nospace@false
  415.  \def\lkerns@{\null\kern\m@ne sp\kern\@ne sp}%
  416.  \def\nkerns@{\null\kern-\tw@ sp\kern\tw@ sp}%
  417. }
  418.  
  419. \def\beginthebibliography@#1{\eightpoint
  420.  \setboxz@h{#1\ }\bibindent@\wdz@
  421.  \bigbreak\centerline{\smc\bibliography@W}\nobreak\medskip
  422.  \sfcode`\.=\@m\everypar{}\parindent\z@}
  423.  
  424. \def\dotleaders{\leaders\hbox to10pt{\rm\hfil.\hfil}\hfil}%
  425. \def\Page@#1#2#3#4{\kern10pt\hbox{\rm#3#2{#1}#4}}%
  426. \long\def\widerthanhsize@#1#2#3#4{\test@true
  427.  \setbox\z@\vbox{\hsize\maxdimen
  428.   \rm\noindent@#1#2#3#4\par\setboxzl@}%
  429.  \ifdim\wdz@=\z@\setboxz@h{\kern24\p@\rm#1#2#3#4}\ifdim\wdz@>\hsize\else
  430.  \test@false\fi\fi}%
  431. \long\def\setentry@#1#2#3#4{%
  432.  \widerthanhsize@{#1}{#2}{#3}{#4}%
  433.  \iftest@
  434.   \longentry@{#1}{#2}{#3}{#4}%  
  435.  \else
  436.   \hbox to\hsize{\kern24\p@\rm\strut#1#2#3#4\strut}%
  437.  \fi}%
  438. \def\endstrut@{\lower\dp\strutbox\vbox to\dp\strutbox{}}%
  439. \newdimen\thehang@
  440. \long\def\longentry@#1#2#3#4{\setboxz@h{#1}%
  441.  \thehang@\wdz@\advance\thehang@10\p@
  442.  \setboxz@h{#4}%
  443.  \setbox\z@\vbox{\advance\hsize-\wdz@\advance\hsize-20\p@
  444.   \normalbaselines
  445.   \hangafter\@ne\hangindent\thehang@\leftskip24\p@
  446.   \vskip-\parskip
  447.   \noindent@\rm\strut\hbox{#1}#2\vphantom{#3#4}\strut}%
  448.  \setbox\z@\vbox{\unvbox\z@
  449.   \setboxzl@ 
  450.   \hbox to\hsize{\kern\thehang@\unhbox\z@\unskip\unskip#3#4\strut}%  
  451.   }%
  452.  \unvbox\z@}%
  453. \newif\ifemptynumber@
  454. \def\Style@{\emptynumber@false\FN@\Style@@}%
  455. \def\Style@@{\ifx\next"\expandafter\Style@@@\else\expandafter\Style@@@@\fi}%
  456. \def\Style@@@@#1\Style@{\style{#1}}%
  457. \def\Style@@@"#1"\Style@{\DN@{#1}\ifx\next@\emtpy\emptynumber@true
  458.  \else\emptynumber@false#1\fi}%
  459. \newdimen\digits
  460.  
  461. \def\maketoc@W{Contents}
  462.  
  463. \def\maketoc{\par
  464.  \begingroup
  465.  \eightpoint\tolerance800
  466.  \unlabel@\noset@\let\nopunct\relax\let\nospace\relax\let\overlong\relax
  467.  \everypar{}\parindent\z@
  468.  \lineskiplimit\z@
  469.  \def\HL##1##2##3##4\Page##5##6##7##8{\def\HLlevel@{##1}%
  470.   \ifnum\HLlevel@=\@ne
  471.    \begingroup
  472.    \def\\{\unskip\space\ignorespaces}%
  473.    \setentry@{\bf\def\next@{##2}\ifx\next@\empty\else##2 \fi
  474.     \let\style\HL@@S\Style@##3\Style@
  475.     \ifemptynumber@\else\space\fi}%
  476.     {\bf\ignorespaces##4\unskip}\dotleaders{\Page@{##5}{##6}{##7}{##8}}%
  477.    \endgroup
  478.   \else
  479.    \Err@{\string\HL##1 not defined in this style}%
  480.   \fi}%
  481.  \setbox0\hbox{0.00}%
  482.  \digits\wd\z@
  483.  \def\hl##1##2##3##4\Page##5##6##7##8{\def\hllevel@{##1}%
  484.   \ifnum\hllevel@<\thr@@
  485.    \begingroup
  486.    \setentry@{\rm\kern\hllevel@ em\quad\let\style\hl@@S
  487.     \Style@##3\Style@\ifemptynumber@\else\space\fi}%
  488.     {\rm\ignorespaces##4\unskip}\dotleaders{\Page@{##5}{##6}{##7}{##8}}%
  489.    \endgroup
  490.   \else
  491.   \ifnum\hllevel@<5
  492.    \setentry@{}{\rm\kern\hllevel@ em\quad\ignorespaces##4\unskip}%
  493.     \dotleaders{\Page@{##5}{##6}{##7}{##8}}%
  494.   \else
  495.    \Err@{\string\hl##1 not defined in this style}%
  496.   \fi\fi}%
  497.  \def\NameHL##1##2{\def##2####1####2####3\Page{%
  498.   \HL{##1}{####1}{####2}####3\Page}}%
  499.  \def\Namehl##1##2{\def##2####1####2####3\Page{%
  500.   \hl{##1}{####1}{####2}####3\Page}}%
  501.  \NameHL1\heading \Namehl1\section \Namehl2\subsection \Namehl3\topic
  502.  \Namehl4\subtopic
  503.  \centerline{\smc\maketoc@W}%
  504.  \nobreak
  505.  \vskip18\p@ plus12\p@ minus6\p@
  506.  \advance\hsize-24\p@
  507.  \input\jobname.toc
  508.  \endgroup
  509.  \vskip12\p@ plus8\p@ minus4\p@
  510. }
  511.  
  512. \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
  513.  \ch@ck#1#4#2\allocationnumber=\count1#1
  514.  \global#3#5=\allocationnumber
  515.  \wlog{\string#5=\string#2\the\allocationnumber}}
  516. \catcode`\@=\active
  517.